home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / EvtHandler.C < prev    next >
C/C++ Source or Header  |  1990-09-20  |  2KB  |  96 lines

  1. //$EvtHandler$
  2. #include "EvtHandler.h"
  3. #include "Command.h"
  4. #include "View.h"
  5. #include "Clipper.h"
  6. #include "CmdNo.h"
  7. #include "System.h"
  8.  
  9. AbstractMetaImpl0(EvtHandler);
  10.  
  11. EvtHandler::EvtHandler()
  12. {
  13. }
  14.     
  15. EvtHandler *EvtHandler::GetNextHandler()
  16. {
  17.     AbstractMethod("GetNextHandler");
  18.     return 0;
  19. }
  20.  
  21. EvtHandler *EvtHandler::FindNextHandlerOfClass(Class *cla)
  22. {
  23.     register EvtHandler *vp;
  24.     
  25.     for (vp= this; vp; vp= vp->GetNextHandler()) {
  26.     if (vp->IsA()->isKindOf(cla))
  27.         return vp;
  28.     }
  29.     return 0;
  30. }
  31.  
  32. void EvtHandler::PerformCommand(Command *cmd)
  33. {
  34.     if (cmd && cmd != gNoChanges) {
  35.     if (GetNextHandler())
  36.         GetNextHandler()->PerformCommand(cmd);
  37.     else
  38.         cmd->Perform();
  39.     }
  40. }
  41.  
  42. class Menu *EvtHandler::GetMenu()
  43.     if (GetNextHandler())
  44.     return GetNextHandler()->GetMenu();
  45.     return 0;
  46. }
  47.  
  48. void EvtHandler::DoCreateMenu(class Menu *mp)
  49. {
  50.     if (GetNextHandler())
  51.     GetNextHandler()->DoCreateMenu(mp);
  52. }
  53.  
  54. void EvtHandler::DoSetupMenu(class Menu *mp)
  55. {
  56.     if (GetNextHandler())
  57.     GetNextHandler()->DoSetupMenu(mp);
  58. }
  59.  
  60. Command *EvtHandler::DoMenuCommand(int cmd)
  61. {
  62.     if (GetNextHandler())
  63.     return GetNextHandler()->DoMenuCommand(cmd);
  64.     return gNoChanges;
  65. }
  66.  
  67. void EvtHandler::Send(int id, int part, void *val)
  68. {
  69.     Object::Send(id, part, val);
  70. /*
  71.     if (GetNextHandler())
  72.     GetNextHandler()->Send(id, part, val);
  73. */
  74.     if (GetNextHandler())
  75.     GetNextHandler()->Control(id, part, val);
  76. }
  77.  
  78. void EvtHandler::Control(int id, int part, void *val)
  79. {
  80.     if (GetNextHandler()) 
  81.     GetNextHandler()->Control(id, part, val);
  82. }
  83.  
  84. Command *EvtHandler::DoIdleCommand()
  85. {
  86.     if (GetNextHandler())
  87.     return GetNextHandler()->DoIdleCommand();
  88.     return gNoChanges;
  89. }
  90.  
  91. void EvtHandler::SendDown(int, int, void*)
  92. {
  93. }
  94.  
  95.